package com.ftg.learn.annotation;

import com.ftg.learn.entity.Student;
import com.ftg.learn.pattern.StudentMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.DependsOn;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.annotation.Resource;

/**
 * spring 注解
 * Component  把当前类做为组件注入到容器当中
 *  别名 : 在开发时候，会做为业务模块进行区分使用
 *  Repository :  把当做为组件注入  {数据模型}
 *  Service    :  把当做为组件注入  {业务模型}
 *  Controller :  把当做为组件注入  {前端控制器}
 *
 *   查找依赖关系
 *   Autowired  : 从容器里面查找当前修饰的变量 、 方法 的类型
 *   Resource   : 同上
 *
 *   按名称装配
 *     Qualifier : 指定依赖的别名，@Qualifier("aaa") 从容器里面找到一个实例别名叫aaa的赋值给s
 *
 * @GetMapping()  :  查询访求名称
 * @PostMapping() ： 添加访求名称
 * @PutMapping()
 * @DeleteMapping()
 *
 * springboot注解
 * Configuration  : 把当前类做为spring配置文件使用
 * Bean           : 把当前方法返回值，做为组件注入到容器里面
 * PostConstruct   : 当前方法在类实例化完成以后 ，要执行一次,
 * PreDestroy      : 在组件销毁的时候
 * DependsOn       : 在当前组件实例化以前要先实例的类，用此修饰
 * Order           : Bean 加载的多个组件之的加载顺序问题
 *
 * SpringBootApplication : 主程序
 * @author kangjx
 * @createTime 2022/11/28
 */
@Configuration
public class Person {


    @Bean("aa")
    public Student aa(){
        return new Student();
    }

    @PostConstruct
    public void abc(){

    }


    @PreDestroy
    public void def(){

    }

}
